package sifeap.bl.ejb.solicitudescredito;

import java.util.List;

import javax.ejb.Local;

import sifeap.entities.solicitudescredito.EstadoCredito;
import sifeap.entities.solicitudescredito.SolicitudCredito;
import sifeap.entities.solicitudescredito.TipoCredito;
import sifeap.entities.solicitudescredito.valueobject.SolicitudCreditoVO;
import sifeap.exception.SifeapException;
import sifeap.wrappers.asociados.VinculadoWrapper;

@Local
public interface SolicitudCreditoBLLocal {
	public byte crear(SolicitudCredito solicitudCredito) throws SifeapException;
	
	public List<SolicitudCredito> buscarTodos() throws SifeapException;
	
	public byte modificar(SolicitudCredito solicitudCredito) throws SifeapException;
	
	public boolean eliminar(SolicitudCredito solicitudCredito) throws SifeapException;
	
	public SolicitudCredito buscar(Object id) throws SifeapException;
	
	public boolean remover(SolicitudCredito solicitudCredito)throws SifeapException;

	public Double obtenerDeudaAsociado(String cedula);

	public Double obtenerAportesAsociado(String cedula);
	
	public List<TipoCredito> buscarTiposCredito() throws SifeapException;
	
	public TipoCredito buscarTipoCredito(Object id) throws SifeapException;
	
	public List<EstadoCredito> buscarEstadosCredito() throws SifeapException;
	
	public EstadoCredito buscarEstadoCredito(Object id) throws SifeapException;

	public List<SolicitudCredito> buscarMisSolicitudes(SolicitudCreditoVO solicitudCreditoVo) throws SifeapException;

	public boolean cambiarEstadoSolicitud(long idSolicitudCredito, Long estadoCreditoCancelado, String comentario) throws SifeapException;

	public List<SolicitudCreditoVO> buscarSolicitudesGestionadas(SolicitudCreditoVO solicitudCreditoVo) throws SifeapException;

	public void cambiarEstadoSolicitudes(List<SolicitudCreditoVO> listaSolicitudes) throws SifeapException;

	public byte validarMontoSolicitado(SolicitudCredito solicitudCredito, VinculadoWrapper asociado);
}
